$(function () {
  const { layer, form, laypage } = layui;
  // 定义美化时间的过滤器
  template.defaults.imports.dataFormat = function (date) {
    const dt = new Date(date);

    const y = dt.getFullYear();
    const m = padZero(dt.getMonth() + 1);
    const d = padZero(dt.getDate());

    const hh = padZero(dt.getHours());
    const mm = padZero(dt.getMinutes());
    const ss = padZero(dt.getSeconds());

    return y + "-" + m + "-" + d + " " + hh + ":" + mm + ":" + ss;
  };

  // 定义补零的函数
  function padZero(n) {
    return n > 9 ? n : "0" + n;
  }
  const q = {
    pagenum: 1, // 页码值，默认请求第一页的数据
    pagesize: 2, // 每页显示几条数据，默认每页显示2条
    cate_id: "", // 文章分类的 Id
    state: "", // 文章的发布状态
  };
  initTable();
  function initTable() {
    $.ajax({
      method: "GET",
      url: "/my/article/list",
      data: q,
      success: function (res) {
        if (res.status !== 0) {
          return layer.msg("获取文章列表失败！");
        }
        const htmlStr = template("tpl-table", res);
        $("tbody").html(htmlStr);
        renderPage(res.total);
      },
    });
  }

  function renderPage(total) {
    laypage.render({
      elem: "pageBox", // 设置默认被选中的分页
      count: total, // 总数据条数
      limit: q.pagesize, // 每页显示几条数据
      curr: q.pagenum, // 设置默认被选中的分页
      layout: ["count", "limit", "prev", "page", "next", "skip"],
      limits: [2, 3, 5, 6, 10],
      jump: function (obj, first) {
        console.log(obj.curr);
        // 把最新的页码值，赋值到 q 这个查询参数对象中
        q.pagenum = obj.curr;
        // 把最新的条目数，赋值到 q 这个查询参数对象的 pagesize 属性中
        q.pagesize = obj.limit;
        // 可以通过 first 的值，来判断是通过哪种方式，触发的 jump 回调
        // 如果 first 的值为 true，证明是方式2触发的
        // 否则就是方式1触发的
        if (!first) {
          initTable();
        }
      },
    });
  }
  initCate();
  function initCate() {
    $.ajax({
      method: "GET",
      url: "/my/article/cates",
      success: function (res) {
        if (res.status !== 0) {
          return layer.msg("获取分类数据失败！");
        }
        const htmlStr = template("tpl-cate", res);
        $("[name=cate_id]").html(htmlStr);
        console.log(htmlStr);
        // 通过 layui 重新渲染表单区域的UI结构
        form.render();
      },
    });
    $("#form-search").on("submit", function (e) {
      e.preventDefault();
      const cate_id = $("[name=cate_id]").val();
      const state = $("[name=state]").val();
      q.cate_id = cate_id;
      q.state = state;
      initTable();
    });
  }
  //文章删除功能
  $("tbody").on("click", ".btn-delete", function () {
    // 获取删除按钮的个数
    const len = $(".btn-delete").length;
    const id = $(this).attr("data-id");
    $.ajax({
      method: "GET",
      url: "/my/article/delete/" + id,
      success: function (res) {
        if (res.status !== 0) {
          return layer.msg("删除文章失败！");
        }
        layer.msg("删除文章成功！");
        //删除文章后重新渲染页面
        // if(len===1){
        //    // 如果 len 的值等于1，证明删除完毕之后，页面上就没有任何数据了
        //    q.pagenum=q.pagenum===1?1:q.pagenum-1
        // }
        if (len === 1 && q.pagenum > 1) {
          // 如果 len 的值等于1，证明删除完毕之后，页面上就没有任何数据了
          q.pagenum--;
        }
        initTable();
      },
    });
  });
});
